package com.xjwn.datasync;

import java.util.concurrent.ScheduledFuture;

//ScheduledFuture的包装类：使这个类不仅可以获取任务的执行结果，还可以取消任务的执行
public final class ScheduledTask {

    //volatile关键字确保了在多线程环境中对future变量的修改对所有线程都是可见的，并且防止指令重排序。
    //ScheduledFuture是ScheduledExecutorService定时任务线程池的执行结果。
    volatile ScheduledFuture<?> future;

    //取消任务的执行
    public void cancel() {
        ScheduledFuture<?> future = this.future;  
        if (future != null) {
            future.cancel(true);
        }
    }



}